This invention relates generally to a system and method for connecting a computer system to a computer bus and in particular to a system and method for interfacing a computer system to a standard universal serial peripheral device bus.
In a typical computer system, a computer having a microprocessor may be connected to a plurality of peripheral devices, such as a printer or a modem, by one or more electrical buses and several different communications ports. Different peripheral devices have interfaces with different form factors and electrical characteristics, and these communications ports are used for a variety of different peripheral devices. A typical desktop computer may have a modem, a printer, a keyboard and a mouse connected to it. The modem may be connected to a serial port, the printer may be connected to a parallel port, the keyboard may be connected to a dedicated keyboard port and the mouse may be connected to a dedicated mouse port. Each of these communication ports may have different electrical characteristics, require different connectors and each has a different cable that runs from the peripheral device to the connector which connects to the computer communications port. For example, the serial port, the parallel port, the keyboard port and the mouse port all have different characteristics, cables and different connectors. The result is a large number of diverse interfaces and cables that must be used. In addition, the electrical design of these communications ports typically requires that the computer be turned off before connecting and/or disconnecting a peripheral device from the port because the port may be permanently damaged otherwise. This prompted the design of a single standardized peripheral interface connection system which reduces the need for multiple connectors and cables, and permits the connection and disconnection of a peripheral device while the computer is turned on.
A new emerging technology called the Universal Serial Bus (USB) is a system intended to create a single standardized peripheral device connection system. The USB makes the task of connecting peripheral devices to computers easier and more reliable since it uses a standardized connector and form factor, and makes operating those peripheral devices with the computer, easier and more reliable than with the various different types of communication ports. The computer to which these peripheral devices are connected by the USB is known as the xe2x80x9chost computerxe2x80x9d. The USB replaces the multiple cable and connector types with a single standardized connection system. The USB also permits the connection and disconnection of USB compatible peripheral devices while the computer is turned on which eliminates the typical turning off and rebooting of the computer in order to connect or disconnect a peripheral device to the computer.
When a peripheral device is first connected to the USB and the host computer through a standard USB communications port, the presence of the connected peripheral device is detected and a configuration process of the USB for the connected peripheral device, known as device enumeration, begins. The enumeration process assigns a unique USB address to the connected peripheral device, queries the connected peripheral device about its requirements and capabilities, writes data about the connected peripheral device into the host computer""s operating system, and loads the appropriate software device driver from a storage location into the host computer""s operating system. During the query, a data table stored in the peripheral device, which contains the particular peripheral device""s configuration information, is read from the peripheral device into the host computer""s memory. Upon completion of the enumeration process, the connected peripheral device is recognized by the host computer""s operating system and may be used by application software being executed by the microprocessor of the host computer. The association of the device with the software device driver cannot be subsequently changed.
In a serial bus system, such as the USB, the only opportunity for associating software device drivers with a peripheral device is at the time when the peripheral device is plugged into the USB and the enumeration process occurs. Thus, to alter the configuration or personality of a peripheral device, such as downloading new code or configuration information into the memory of the peripheral device, the host computer system must detect a peripheral device connection or a disconnection and then a reconnection.
The USB provides a number of advantages, as described above, over standard peripheral device connection techniques. The USB, however, does not provide a system and method for easily altering the configuration data for a peripheral device. In addition, the USB also does not provide a method for easily changing the software device driver associated with a particular peripheral device.
Thus, there is a need for a system and method for interfacing to a universal serial bus which avoids these and other problems of known systems and methods, and it is to this end that the present invention is directed.
The invention provides a universal serial bus interface system and method in which the configuration information for a plurality of different peripheral devices may be stored in the host computer rather than in the peripheral devices themselves. The flexibility of the universal serial bus is thereby increased because each peripheral device does not need to store configuration information. In addition, the configuration information for any peripheral device may be easily modified to accommodate changes in the peripheral devices or to take advantage of other peripheral device features because it is located in the file system of the host computers. The configuration information may include configuration data, microprocessor code to be executed on the CPU in the peripheral device, and logic configuration data. The configuration information may be downloaded from the host computer into the peripheral device.
In addition, the universal serial bus interface system and method permits the configuration information associated with the peripheral device to be electronically altered to match changes in the peripheral devices. Instead of physically disconnecting and reconnecting a peripheral device to reconfigure it, a peripheral device may be electronically disconnected and then reconnected to the USB (e.g. the disconnect/connect cycle may be electrically simulated) so that a change in the configuration information for a particular peripheral device may be implemented. One of many advantages of the electrical simulation of the disconnect and reconnect cycle is that since the peripheral device is physically connected to the bus during the electrical simulation, the peripheral device may utilize the electrical power supplied by the bus to operate the peripheral device. If the peripheral device is physically disconnected as in a conventional USB system, the peripheral device would require its own electrical power source. Thus, the computer system may, without human assistance, reconfigure a peripheral device connected to the USB.
In addition, the universal serial bus interface system and method may be a single semiconductor chip which may be incorporated into a plurality of peripheral devices made by a plurality of manufacturers. The chip may initially have a generic configuration (e.g., not specific to a particular peripheral device). Then, the appropriate configuration information for a particular peripheral device and manufacturer may be downloaded to the chip, an electronic simulation of the disconnection and reconnection of the peripheral device occurs, the peripheral device is recognized as a new, manufacturer specific peripheral device and the appropriate software device driver is loaded into the memory of the host computer.
In accordance with the invention, a system and method for reconfiguring a peripheral device connected by a computer bus and port to a host computer is provided in which a host computer detects a peripheral device connected to the port in which the peripheral device has a first configuration. A second set of configuration information may be downloaded from the host computer into the peripheral device over the computer bus, and the configuration of the peripheral device is electronically reset from said first configuration to a second configuration based on the second set of configuration information.
In accordance with another aspect of the invention, a peripheral interface device for a standardized computer peripheral device bus and port is provided in which a peripheral device is physically connected to a computer system through a computer peripheral bus and port and the peripheral device has a first configuration. A second set of configuration information may be received from a computer system, and a physical disconnection and reconnection of the peripheral device is simulated to reconfigure the peripheral device to a second configuration based on the second configuration information.